// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

// Test for issue #781

global Glop := {
    property <int> r;
}

SubSubCompo := Rectangle {
    property <int> val;
    TouchArea {
        clicked => { Glop.r = val; }
    }
}
SubCompo := SubSubCompo { }

export TestCase := Window {
    width: 300px;
    height: 300px;
    HorizontalLayout {
        SubCompo { val: 88; }
        SubCompo { val: 99; }
    }

    property <int> result: Glop.r;
}

/*
```cpp
auto handle = TestCase::create();
const TestCase &instance = *handle;
slint_testing::send_mouse_click(&instance, 295., 295.);
assert_eq(instance.get_result(), 99);
```

```rust
let instance = TestCase::new().unwrap();
slint_testing::send_mouse_click(&instance, 295., 295.);
assert_eq!(instance.get_result(), 99);
```

*/
